package cc.rengu.oltp.service.common.dao;

import cc.rengu.oltp.service.common.entity.NonFinanceTxn;

/**
 * 非金融交易流水表操作接口类
 * Created by 王成 on 2018/4/18.
 */
public interface NonFinanceTxnMapper {
    /**
     * 登记非金融交易流水表
     *
     * @param nonFinanceTxn 非金融交易流水实体类
     * @return 0-成功，其它-失败
     */
    int insertNonFinanceTxn(NonFinanceTxn nonFinanceTxn) throws Exception;

    /**
     * 基于主键更新非金融交易流水状态
     *
     * @param nonFinanceTxn 非金融交易流水实体类
     * @return 0-成功，其它-失败
     */
    int updateNonFinanceTxnByPrimaryKey(NonFinanceTxn nonFinanceTxn) throws Exception;

    /**
     * 基于前端流水号查询交易流水信息
     *
     * @param instId        多法人标识
     * @param transDateTime 交易传输时间
     * @param frontSeqNum   前端流水号
     * @param msgSrcId      源系统标识
     * @param msgSrcId      渠道标识
     * @return 非金融交易流水信息
     */
    NonFinanceTxn selectNonFinanceTxnByFrontSeqNum(String instId, String transDateTime, String frontSeqNum, String msgSrcId, String transChannelId) throws Exception;

    /**
     * 基于主键查询交易流水信息
     *
     * @param instId    多法人标识
     * @param sysSeqNum 系统流水号
     * @return 非金融交易流水信息
     */
    NonFinanceTxn selectNonFinanceTxnInfoByPrimaryKey(String instId, String sysSeqNum) throws Exception;

    /**
     * 基于通道流水号查询交易流水信息
     *
     * @param instId        多法人标识
     * @param channelSeqNum 通道流水号
     * @return 非金融交易流水信息
     * @throws Exception 异常
     */
    NonFinanceTxn selectNonFinanceTxnByChannelSeqNum(String instId, String channelSeqNum) throws Exception;
}
